<?php

class Application_Model_UcServidores extends Sgit_Model
{  
    protected $_name = 'uc';
    protected $_primary = 'id';
    
    
    
    
    public function getServidoresByZona($idZona,$values=array(),$id=null)
	{
            $fecha_baja=Sgit_Filter_DateTo::filter($values['fecha_baja']);

			$select = $this->getAdapter()->select();
            
            $storage = $this->getAdapter()->select();
            $storage->from( array( 'uc_extra' ),array(new Zend_Db_Expr('SUM(cantidad)')))->where( 'tipo=?', 'storage')->where( 'id_uc=uc.id');

            $ram = $this->getAdapter()->select();
            $ram->from( array( 'uc_extra' ),array(new Zend_Db_Expr('SUM(cantidad)')))->where( 'tipo=?', 'ram')->where( 'id_uc=uc.id');
            
            $lun = $this->getAdapter()->select();
            $lun->from( array( 'uc_extra' ),array(new Zend_Db_Expr('SUM(lun)')))->where( 'tipo=?', 'storage')->where( 'id_uc=uc.id');
            
            
			$select->from( array( 'uc' ),array('*',"storage"=>"($storage)",'ram'=>"($ram)",'lun'=>"($lun)"));

			$select->joinLeft( 'uc_tipo_servidor', 'uc_tipo_servidor.id = uc.id_tipo_servidor', array( 'tipo_servidor' => 'nombre' ) );
			$select->joinLeft( 'proyectos', 'proyectos.id = uc.id_proyecto', array( 'cliente' => 'nombre' ) );
            $select->where( 'uc.id_zona = ?', $idZona);
            
            if(!is_null($id)){
                $select->where( 'uc.id = ?', $id);
            }
            
            
            if($fecha_baja) $select->where("fecha_baja >= $fecha_baja OR fecha_baja IS NULL");
            if($values['pep']) $select->where( 'uc.pep LIKE ?', "%{$values['pep']}%");
            if($values['ticket']) $select->where("uc.ticket_nec LIKE '%{$values['ticket']}%'  OR uc.ticket_cliente LIKE  '%{$values['ticket']}%'");
            if($values['id_proyecto']) $select->where( 'uc.id_proyecto = ?', $values['id_proyecto']);
            $this->setDateRange($select,$values['fecha_alta'],'fecha_alta');
                                                  
            return $this->getAdapter()->fetchAll( $select );
            
            
            
            
	}
    
    
    
    
    



    
}  




